/*  通过mysql来查询用户信息--进行登录 */
#include"head.h"

int mysql_login(MYSQL** mysql,requst* p)
{

    char query[50]={0};
    sprintf(query,"select *from %s where id=%d and pass='%s'","info",p->id,p->pass);
    if(mysql_real_query(*mysql,query,strlen(query))) //mysql_real_query()函数是执行sql操作语句的函数
    {                                                   
        printf("%s\n",mysql_error(*mysql));
        mysql_close(*mysql);
        return -1;
    }


    MYSQL_RES *result;
    if((result=mysql_store_result(*mysql))==NULL)          //4.存储结果集到result中
    {                                                   //这个result用完需要释放空间
        printf("%s\n",mysql_error(*mysql));
        mysql_close(*mysql);
        return -1;
    }


    unsigned int   fnum = mysql_num_fields(result);     //5.由result获取字段的数量
    if(fnum==0)
    {
        printf("未拿到字段数量\n");
        
    }

    MYSQL_ROW row;
    my_ulonglong rnum =mysql_num_rows(result);          //7.获取记录的数量
    if(rnum>=1)                                         //返回值等于1的时候登录成功
    {
        row=mysql_fetch_row(result);                    //拿到第一条记录，中的name
        strcpy(p->name,row[1]);
        mysql_free_result(result);
        return 1;
    }
    else
    {
        mysql_free_result(result);
        return 0;
    }

    /*
    MYSQL_FIELD *fields = mysql_fetch_fields(result);   //6.获得所有字段的信息  
    for(register int i=0;i<fnum;i++)
    {
        printf("%s\t",fields[i].name);
    }
    printf("\n");

    MYSQL_ROW row;
    for(register int i=0;i<rnum;i++)
    {
        row=mysql_fetch_row(result);                //检索结果集中的每一条记录
        for(register int j=0;j<fnum;j++)
        {
            printf("%s\t",row[j]);
        }
        printf("\n");
    }*/

    mysql_free_result(result);
}

MYSQL* mysql_op(char buf[16])               //打开数据库
{
    MYSQL* mysql=mysql_init(NULL);
    if(mysql==NULL)
    {
        puts(mysql_error(mysql));
        mysql_close(mysql);
        return 0;
    }

    mysql_set_character_set(mysql,"utf8");      //设置当前连接数据库的操作字符集为中文字符集

    if(mysql_real_connect(mysql,"localhost","root","123456",buf,0,NULL,0)==NULL)
    {
        printf("打开数据库失败\n");
        mysql_error(mysql);
        mysql_close(mysql);
        return 0;
    }
    return mysql;
}

int info(requst *p)
{
    char buf[16]={"注册信息"};
    MYSQL* mysql=mysql_op(buf);             //打开数据库的封装函数
    int ret=mysql_login(&mysql,p);
    if(ret==1)                      //返回值为一时登录成功
    {
        mysql_close(mysql);
        return 0;
    }
    else                            //否则登录失败
    {
        mysql_close(mysql);
        return 1;
    }

    mysql_close(mysql);
    return 0;
}


